package com.wordpress.fatecode.controller;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.wordpress.fatecode.entity.Lote;
import com.wordpress.fatecode.entity.Pessoa;
import com.wordpress.fatecode.model.LoteDAO;
import com.wordpress.fatecode.model.PessoaDAO;

@WebServlet("/lote.do")
public class LoteController extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public LoteController() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String logica = request.getParameter("logica");
		
		LoteDAO loteDAO = new LoteDAO();
		
//		cadastra os lotes 
		if (logica.equals("cadastrar")) {
			Lote lote = new Lote();
			request.setAttribute("lote", lote);
			request.getRequestDispatcher("/cadastro_lotes.jsp").forward(request, response);
		}
		
//		Lista todos os lotes
		if (logica.equals("listar")) {
			List<Lote> lotes =  loteDAO.listar();
			request.setAttribute("lotes", lotes);
			request.getRequestDispatcher("lista_lotes.jsp").forward(request, response);
		}
		
//		Exclui todos os lotes
		if (logica.equals("excluir")) {
			long numeroLote = Long.parseLong(request.getParameter("numero-lote"));
			loteDAO.excluir(numeroLote);
			response.sendRedirect("lote.do?logica=listar");
		}
		
//		Altera todos os lotes
		if (logica.equals("alterar")) {
			long numeroLote = Long.parseLong(request.getParameter("numero-lote"));
			Lote lote = loteDAO.buscar(numeroLote);
			request.getRequestDispatcher("cadastro_lote.jsp").forward(request, response);
		}
	}
	
	
//	Usa post para cadastrar os lotes
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String numeroLoteTxt = request.getParameter("numero-lote");
		long registroGado = Long.parseLong(request.getParameter("registro-gado"));
		String raca = request.getParameter("raca");
		String sexo = request.getParameter("sexo");
		double lanceMinimo = Double.parseDouble(request.getParameter("lance-minimo"));
		Date dataNascimento = null;
		
		try {			
			dataNascimento = new SimpleDateFormat("dd/MM/yyyy").parse(request.getParameter("data-nascimento"));

		} catch (ParseException e) {
			e.printStackTrace();
		}
		
		int quantidade = Integer.parseInt(request.getParameter("quantidade"));
		String urlFoto = request.getParameter("foto");
				
		long numeroLote = 0;
		if (numeroLoteTxt != null && !numeroLoteTxt.equals("")) {
			numeroLote = Long.parseLong(numeroLoteTxt);  
		}
		
		long idPessoa = Long.parseLong(request.getParameter("id-pessoa"));
		Pessoa pessoa = new PessoaDAO().buscar(idPessoa);
		
		Lote lote = new Lote();
		lote.setPessoa(pessoa);
		lote.setNumeroLote(numeroLote);
		lote.setRegistroGado(registroGado);
		lote.setRaca(raca);
		lote.setSexo(sexo);
		lote.setLanceMinimo(lanceMinimo);
		lote.setDataNascimento(dataNascimento);
		lote.setQuantidade(quantidade);
		lote.setUrlFoto(urlFoto);
		
		LoteDAO loteDAO = new LoteDAO();
		loteDAO.salvar(lote);
	}

}
